package factory.factoryMethod.pizzaOrderSystem.pizza.base;

import java.util.ArrayList;

public abstract class Pizza
{

    // dough enum
    public static final String
            THICK = "thick dough", CREPES = "crepes";

    // sauce enum
    public static final String
            SALAD = "salad", KETCHUP = "ketchup", BARBECUE = "barbecue";

    // cutting enum
    public static final String
            DIAGONAL = "diagonal", SQUARE = "square";

    // topping enum
    public static final String CLAM = "clam", CORN_KERNEL = "corn kernel", CHEESE = "cheese";

    protected String name;
    protected String dough;
    protected String sauce;
    protected String cutting;
    protected ArrayList<String> toppings = new ArrayList<String>();


    public void prepare()
    {
        System.out.println("Preparing " + name);
        System.out.println("Tossing dough :" + dough);
        System.out.println("Adding sauce :" + sauce);
        System.out.println("Adding toppings:");
        for (String topping : toppings)
        {
            System.out.println("  " + topping);
        }
    }

    public void bake()
    {
        System.out.println("Bake for 25 minutes at 350");
    }

    public void cut()
    {
        System.out.println("Cutting the pizza into " + cutting + " slices");
    }

    public void box()
    {
        System.out.println("Place pizza in official PizzaStore box");
    }


    //getters, setters

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDough() {
        return dough;
    }

    public void setDough(String dough) {
        this.dough = dough;
    }

    public String getSauce() {
        return sauce;
    }

    public void setSauce(String sauce) {
        this.sauce = sauce;
    }

    public String getCutting() {
        return cutting;
    }

    public void setCutting(String cutting) {
        this.cutting = cutting;
    }

    public ArrayList<String> getToppings() {
        return toppings;
    }

    public void setToppings(ArrayList<String> toppings) {
        this.toppings = toppings;
    }
}
